package com.fufu.thread;

/**
 * 创建线程的方式
 * @Author: 黑虎阿福
 * @Date: 2023/2/9 18:23
 * @Contact: hsf6661@163.com
 */
public class Demo {

    /**
     * 当java程序启动时，实际上是启动了一个jvm进程，然后jvm启动主线程来执行main()方法
     */
    public static void main(String[] args) {
        //创建新线程
        Thread th = new Thread();
        //启动新线程
        th.start();

        //创建自定义多线程类
        MyThread myThread = new MyThread();
        //start()方法会在内部自动调用实例的run()方法
        myThread.start();

        //创建自定义多线程类
        Thread thread = new Thread(new MyRunable());
        thread.start();

        //Lambda语法创建多线程
        Thread thread1 = new Thread(()->{
            System.out.println("Lambdas语法创建多线程");
        });
        thread1.start();
    }
}

/**
 * 继承Thread派生一个自定义多线程类
 */
class MyThread extends Thread{
    @Override
    public void run() {
        System.out.println("启动自定义线程");
    }
}

/**
 * 实现Runable接口派生一个自定义多线程类
 */
class MyRunable implements Runnable{
    @Override
    public void run() {
        System.out.println("Runable接口实现多线程");
    }
}